home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / ShowCode.nasl < prev    next >
Text File  |  2005-03-31  |  8KB  |  216 lines

  1. #
  2. # ShowCode ASP
  3. #
  4. # This plugin was written in C by Immo Goltz <Immo.Goltz@gecits-eu.com>
  5. # and is released under the GPL
  6. #
  7. # - Description taken from  http://www.l0pht.com/advisories.html
  8. #
  9. # Converted in NASL by Renaud Deraison <deraison@cvs.nessus.org>
  10.  
  11.  
  12. if(description)
  13. {
  14.  script_id(10007);
  15.  script_bugtraq_id(167);
  16.  script_version ("$Revision: 1.26 $");
  17.  script_cve_id("CAN-1999-0736");
  18.  name["english"] = "ShowCode possible";
  19.  name["francais"] = "ShowCode possible";
  20.  name["deutsch"] = "ShowCode moeglich";
  21.   
  22.  script_name(english:name["english"], francais:name["francais"], deutsch:name["deutsch"]);
  23.  
  24.  desc["english"] = "
  25. Internet Information Server (IIS) 4.0 ships with a set of sample files to
  26. help web developers learn about Active Server Pages (ASP). One of these
  27. sample files, 'showcode.asp' (installed in /msadc/Samples/SELECTOR/), is
  28. designed to view the source code of the sample applications via a web
  29.  
  30. browser.
  31. The 'showcode.asp' file does inadequate security checking and allows anyone
  32. with a web browser to view the contents of any text file on the web server.
  33. This includes files that are outside of the document root of the web server.
  34.  
  35. The 'showcode.asp' file is installed by default at the URL:
  36. http://www.YOURSERVER.com/msadc/Samples/SELECTOR/showcode.asp
  37. It takes 1 argument in the URL, which is the file to view.
  38. The format of this argument is: source=/path/filename
  39.  
  40. This is a fairly dangerous sample file since it can view the contents of any 
  41. other files on the system. The author of the ASP file added a security check to 
  42. only allow viewing of the sample files which were in the '/msadc' directory on 
  43. the system. The problem is the security check does not test for the '..'
  44. characters within the URL. The only checking done is if the URL contains the
  45. string '/msadc/'. This allows URLs to be created that view, not only files
  46. outside of the samples directory, but files anywhere on the entire file
  47. system that the web server's document root is on.
  48.  
  49. The full description can be found at: http://www.l0pht.com/advisories.html
  50.  
  51. Solution : For production servers, sample files should never be installed, so
  52. delete the entire /msadc/samples directory. If you must have the
  53. 'showcode.asp' capability on a development server, the 'showcode.asp' file 
  54. should be modified to test for URLs with '..' in them and deny those requests.
  55.  
  56. Risk factor : High";
  57.  
  58.  
  59.  desc["francais"] = "
  60. Le fichier showcode.asp est installΘ dans
  61.  /msadc/Samples/SELECTOR
  62.  
  63. Internet Information Server (IIS) 4.0
  64. est livrΘ avec un ensemble de fichiers
  65. d'exemple faits pour faire connaitre
  66. les Active Servers Page (ASP) aux 
  67. dΘvelopeurs web. Un des ces fichiers
  68. d'exemple, 'showcode.asp', est fait
  69. pour voir le code source des programmes
  70. d'exemple au travers d'un browser web.
  71. Le fichier 'showcode.asp' fait des vΘrifications
  72. sΘcuritaires inadΘquates et permet α quiconque
  73. possΦdant un browser web de lire des fichiers 
  74. arbitraires sur la machine distante, ce qui
  75. inclut des fichiers qui sont en dehors 
  76. de la racine du serveur web.
  77.  
  78. Le fichier showcode.asp est installΘ par 
  79. dΘfaut α :
  80. http://www.someserver.com/msadc/Samples/SELECTOR/showcode.asp
  81.  
  82. Il prend un argument dans l'URL, qui est le nom du fichier
  83. α lire.
  84. Le format de cet argument est :
  85. source=/chemin/fichier
  86.  
  87.  
  88. Ce fichier d'exemple est dangereux. Il peut lire
  89. le contenu de n'importe quel fichier sur le systΦme.
  90. Son auteur a ajoutΘ une vΘrification sΘcuritaire
  91. qui ne permet la lecture que des fichiers prΘsents
  92. dans le dossier '/msadc'. Le problΦme Θtant que
  93. ce test de sΘcuritΘ ne teste pas les caractΦres
  94. '..'. La seule vΘrification qui est faite est
  95. que la chaine '/msadc' est contenue dans 
  96. l'URL. Cela permet la crΘation d'URLs qui peuvent
  97. lire des fichiers arbitraires sur la machine distante.
  98.  
  99. La description complete de ce problΦme peut Ωtre
  100. lue α :
  101. http://www.l0pht.com/advisories.html
  102.  
  103. Solution : les serveurs de productions ne doivent
  104. pas garder les documents d'exemple, donc effacez
  105. le rΘpertoire /msadc/samples. Si vous avez besoin
  106. de showcode.asp, alors modifiez-le de telle sorte
  107. qu'il detecte des URLs ayant '..' et qu'il refuse
  108. ces requΩtes.
  109.  
  110. Facteur de risque : ElevΘ";
  111.  
  112.  desc["deutsch"] = "
  113. Die Datei showcode.asp ist installiert unter
  114.  /msadc/Samples/SELECTOR/
  115.  
  116. Internet Information Server (IIS) 4.0 wird mit einigen
  117. Beispielseiten geliefert, die Web-Entwicklern das erlernen
  118. der Active Server Pages (ASP) erleichtern sollen. Eine
  119. dieser Beispieldateien, 'showcode.asp', ist gedacht, um 
  120. den Programmcode der Beispielprogramme in einem Browser
  121. anzuzeigen.
  122. Die Datei 'showcode.asp' nutzt nur inadequate Sicherheitschecks
  123. und erlaubt jedermann das Lesen von jeglichen Textdateien
  124. auf dem Webserver. Dies beinhaltet auch Dateien, die sich
  125. ausserhalb des Webserver-Verzeichnisbaumes befinden!
  126.  
  127. showcode.asp findet sich Standardmaessig unter der URL:
  128. http://www.someserver.com/msadc/Samples/SELECTOR/showcode.asp
  129.  
  130. Es akzeptiert ein Argument in der URL, und zwar den Dateinamen
  131. der Datei, die angezeigt werden soll. Das Format dieses 
  132. Argumentes ist source=/Pfad/Dateiname
  133.  
  134. Dies ist eine ziemlich gefaehrliche Beispieldatei. Sie kann 
  135. den Inhalt von Dateien auf dem Serversystem anzeigen. Der
  136. Autor der ASP-Datei hat einen Sicherheitscheck hinzugefuegt, 
  137. so dass nur Dateien angezeigt werden koennen, die sich im
  138. '/msadc' Beispielpfad befinden. Leider ueberprueft dieser
  139. Sicherheitscheck nicht, ob sich die Zeichen '..' im Dateinamen
  140. befinden. Es wird lediglich ueberprueft, ob sich die Zeichenkette
  141. '/msadc' in der URL befindet. Somit koennen nicht nur Dateien 
  142. innerhalb des msadc-Pfades, sondern auch solche ausserhalb des
  143. Server-Wurzelverzeichnisses angezeigt werden. 
  144. Man kann auf jede Datei auf der Festplatte zugreifen, auf der
  145. sich der Webserver befindet.
  146.  
  147. Eine genaue Beschreibung findet man unter
  148. http://www.l0pht.com/advisories.html
  149.  
  150. Loesung: Auf Servern im produktiven Einsatz sollte man niemals
  151. Beispieldateien installiert lassen. Loeschen Sie daher das komplette
  152. /msadc/samples Verzeichnis. Wenn Sie die Faehigkeiten des showcode.asp
  153. auf Ihrem Server benoetigen, so sollten Sie es dahingehend 
  154. modifizieren, dass es URLs mit '..' verbietet.
  155.  
  156. Risiko Faktor:    Ernst";
  157.  
  158.  
  159.  script_description(english:desc["english"], francais:desc["francais"], deutsch:desc["deutsch"]);
  160.  
  161.  summary["english"] = "Determines the presence of showcode.asp";
  162.  summary["francais"] = "DΘtermine la prΘsence de showcode.asp";
  163.  summary["deutsch"] = "Ueberprueft auf Existenz von showcode.asp";
  164.  
  165.  script_summary(english:summary["english"], francais:summary["francais"], deutsch:summary["deutsch"]);
  166.  
  167.  script_category(ACT_GATHER_INFO);
  168.  
  169.  
  170.  script_copyright(english:"This script is Copyright (C) 1999 Immo Goltz <Immo.Goltz@gecits-eu.com>",
  171.         francais:"Ce script est Copyright (C) 1999 Immo Goltz <Immo.Goltz@gecits-eu.com>",
  172.         deutsch:"Dieses Script ist Copyright (C) 1999 Immo Goltz <Immo.Goltz@gecits-eu.com>");
  173.  
  174.  family["english"] = "CGI abuses";
  175.  family["francais"] = "Abus de CGI";
  176.  family["deutsch"] = "CGI Sicherheitsluecken";
  177.  script_family(english:family["english"], francais:family["francais"], deutsch:family["deutsch"]);
  178.  
  179.  script_dependencie("find_service.nes", "http_version.nasl");
  180.  script_require_ports("Services/www", 80);
  181.  exit(0);
  182. }
  183.  
  184. #
  185. # The script code starts here
  186. #
  187. include("http_func.inc");
  188. include("http_keepalive.inc");
  189.  
  190. port = get_http_port(default:80);
  191. if ( ! can_host_asp(port:port) ) exit(0);
  192.  
  193.  
  194. cgi = string("/msadc/Samples/SELECTOR/showcode.asp");
  195. if ( is_cgi_installed_ka(item:cgi, port:port) )
  196.  {
  197.   item = "/msadc/Samples/SELECTOR/showcode.asp?source=/msadc/Samples/../../../../../winnt/win.ini";
  198.   req = http_get(item:item, port:port);
  199.   soc = http_open_socket(port);
  200.   if(soc)
  201.   {
  202.    send(socket:soc, data:req);
  203.    r = http_recv(socket:soc);
  204.    http_close_socket(soc);
  205.    r = tolower(r);
  206.    if("[fonts]"  >< r){
  207.     security_hole(port);
  208.     }
  209.    exit(0);
  210.   }
  211.   security_warning(port);
  212.  }
  213.  
  214.   
  215.  
  216.